package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc ApproveReportInfoAndUpdateDataComReqDto
 * @使用场景
 */
@Data
public class ApproveReportInfoAndUpdateDataComReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 是否 TRUE:是 FALSE:否
   */
  @NotNull(message = "财务是否计算不能为空")
  @ApiModelProperty("财务是否计算")
  private String tureOrFalse;

  /**
   * 数据对象批次标识
   */
  @NotNull(message = "数据对象批次标识不能为空")
  @ApiModelProperty("数据对象批次标识")
  private String dataObjectBatchCode;

  /**
   * 计算开始时间
   */
  @NotNull(message = "计算开始时间不能为空")
  @ApiModelProperty("计算开始时间")
  private Date calcStartTime;

  /**
   * 审核通过或失败操作类型 APPROVE:审核通过 AUDIT_FAILURE:审核失败
   */
  @NotNull(message = "审核通过或失败操作类型不能为空")
  @ApiModelProperty("审核通过或失败操作类型")
  private String examineOptType;

  /**
   * 任务ID
   */
  @NotNull(message = "任务ID不能为空")
  @ApiModelProperty("任务ID")
  private String taskId;

  /**
   * 周期阶段资料记录ID
   */
  @NotNull(message = "周期阶段资料记录ID不能为空")
  @ApiModelProperty("周期阶段资料记录ID")
  private String cycleStageDataId;

  /**
   * 是否清理汇报任务调度等 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否清理汇报任务调度等不能为空")
  @ApiModelProperty("是否清理汇报任务调度等")
  private String isClearReportTaskSchedulEtc;

  /**
   * 是否开启资金到账 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否开启资金到账不能为空")
  @ApiModelProperty("是否开启资金到账")
  private String isOpenFundsArrival;

  /**
   * 预算账户ID
   */
  @ApiModelProperty("预算账户ID")
  private String budgetAccountId;

  /**
   * 实体账户ID
   */
  @ApiModelProperty("实体账户ID")
  private String entityAccountId;

  /**
   * 资金单位
   */
  @NotNull(message = "资金单位不能为空")
  @ApiModelProperty("资金单位")
  private String fundUnit;

  /**
   * 是否到账账户 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否到账账户")
  private String isIncomingAccount;

  /**
   * 账单金额
   */
  @ApiModelProperty("账单金额")
  private Double billAmount;

  /**
   * 流水业务故事信息
   */
  @ApiModelProperty("流水业务故事信息")
  private String billBizStory;

  /**
   * 资金使用科目ID
   */
  @ApiModelProperty("资金使用科目ID")
  private String fundUsageSubjectld;

  /**
   * 预算费用支出科目ID
   */
  @ApiModelProperty("预算费用支出科目ID")
  private String budgetExpenseSubjectld;

  /**
   * 预算费用到账科目ID
   */
  @ApiModelProperty("预算费用到账科目ID")
  private String budgetExpensesReceivedSubjectld;

  /**
   * 关联扣减预算账户归属主体标识
   */
  @ApiModelProperty("关联扣减预算账户归属主体标识")
  private String relSubBudgetAccountCode;

  /**
   * 对方名称
   */
  @ApiModelProperty("对方名称")
  private String oppositeName;

  /**
   * 对方logo
   */
  @ApiModelProperty("对方logo")
  private String oppositeLogo;

  /**
   * 是否开启中期 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否开启中期不能为空")
  @ApiModelProperty("是否开启中期")
  private String openMidCycle;

  /**
   * 上一更新周期ID
   */
  @ApiModelProperty("上一更新周期ID")
  private String preUpdateCycleId;

  /**
   * 归属周期ID
   */
  @NotNull(message = "归属周期ID不能为空")
  @ApiModelProperty("归属周期ID")
  private String cycleId;

  /**
   * 周期类型标识
   */
  @NotNull(message = "周期类型标识不能为空")
  @ApiModelProperty("周期类型标识")
  private String cycleTypeCode;

  /**
   * 周期开始时间
   */
  @NotNull(message = "周期开始时间不能为空")
  @ApiModelProperty("周期开始时间")
  private Date cycleStartTime;

  /**
   * 周期结束时间
   */
  @NotNull(message = "周期结束时间不能为空")
  @ApiModelProperty("周期结束时间")
  private Date cycleEndTime;

  /**
   * 是否末级周期 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否末级周期不能为空")
  @ApiModelProperty("是否末级周期")
  private String isLastCycle;

  /**
   * 被评对象目标周期ID
   */
  @NotNull(message = "被评对象目标周期ID不能为空")
  @ApiModelProperty("被评对象目标周期ID")
  private String evaObjTargetCycleId;

  /**
   * 关联目标内容ID
   */
  @NotNull(message = "关联目标内容ID不能为空")
  @ApiModelProperty("关联目标内容ID")
  private String targetCycleContentId;

  /**
   * 目标得分单位
   */
  @NotNull(message = "目标得分单位不能为空")
  @ApiModelProperty("目标得分单位")
  private String targetScoreUnit;

  /**
   * 是否开启标志性成果 TRUE:是 FALSE:否 ONLY_UPLOAD:只上传标志性成果
   */
  @NotNull(message = "是否开启标志性成果不能为空")
  @ApiModelProperty("是否开启标志性成果")
  private String isOpenSymbolicAchievements;

  /**
   * 周期模式类型编码 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
   */
  @NotNull(message = "周期模式类型编码不能为空")
  @ApiModelProperty("周期模式类型编码")
  private String periodicModeTypeCode;

  /**
   * 冗余目标ID
   */
  @NotNull(message = "冗余目标ID不能为空")
  @ApiModelProperty("冗余目标ID")
  private String targetId;

  /**
   * 冗余评价模板ID
   */
  @NotNull(message = "冗余评价模板ID不能为空")
  @ApiModelProperty("冗余评价模板ID")
  private String evaluationTemplateId;

  /**
   * 操作人就职记录ID
   */
  @NotNull(message = "操作人就职记录ID不能为空")
  @ApiModelProperty("操作人就职记录ID")
  private String operationInductionId;

  /**
   * 是否开启自定义执行周期 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否开启自定义执行周期")
  private String isOpenCustomExecuteCycle;

}
